package br.edu.com1263.action;

import java.util.Collection;

import br.edu.com1263.model.Curso;
import br.edu.com1263.negocio.CursoFacade;

import com.opensymphony.xwork2.ActionSupport;



public class CursoAction extends ActionSupport
{
	private static final long serialVersionUID = 116176100181557781L;

	private CursoFacade cursoFacade;
	
	private String editar;
	private String remover;
	private String adicionar;
	private String consultar;
	private String menu;
	
	private String nomeCurso;
	private String codCurso;
	
	private Long id;
	private Long idCurso;
	private Collection<Curso> cursos = null;

	public CursoAction(CursoFacade cursoFacade) {
		this.cursoFacade = cursoFacade;
	}
//----------------------------------------------------
//				Acoes
//----------------------------------------------------	
	@Override
	public String execute() throws Exception {
		clearErrorsAndMessages();		
        
		if(adicionar != null){
            adicionar = null;
            Curso curso = new Curso(codCurso, nomeCurso);
            cursoFacade.salvar(curso);
            
            cursos = cursoFacade.consultarTodos();
			addActionMessage("O curso foi adicionado corretamente.");
			return "view";
        }
		if(consultar != null){
            consultar = null;
			if (idCurso == null)
			{
				addActionMessage("Um curso deve ser selecionado.");
				return "view";
			}
              Curso c = cursoFacade.consultar(idCurso);
              if (c != null)
              {
            	  id = c.getId();
            	  nomeCurso = c.getNomeCurso();
            	  codCurso = c.getCodCurso();
              }
  			return "view";
        }
		if(editar != null){
            editar = null;
			Curso c = cursoFacade.consultar(id);
			c.setNomeCurso(nomeCurso);
			c.setCodCurso(codCurso);
			c.setId(id);
            
            cursoFacade.alterar(c);
            cursos = cursoFacade.consultarTodos();
			addActionMessage("O curso foi editado corretamente.");
			return "view";
        }
		
		if(remover != null){
            remover = null;
			Curso c = cursoFacade.consultar(idCurso);
            if (c != null)
            {
            	cursoFacade.remover(c);
            }            
            cursos = cursoFacade.consultarTodos();
			addActionMessage("O curso foi removido corretamente.");
			return "view";
        }
		
		if(menu != null){
			menu = null;
			return "menu";
		}
		return "menu";
	}
		
	
	public String cadastraCurso() throws Exception {
		cursos = cursoFacade.consultarTodos();
		
		return "view";
	}
	

//	----------------------------------------------------
//				Gets e sets
//	----------------------------------------------------
	public String getEditar() {
		return editar;
	}

	public void setEditar(String editar) {
		this.editar = editar;
	}

	public String getNomeCurso() {
		return nomeCurso;
	}

	public void setNomeCurso(String nomeCurso) {
		this.nomeCurso = nomeCurso;
	}

	public String getCodCurso() {
		return codCurso;
	}

	public void setCodCurso(String codCurso) {
		this.codCurso = codCurso;
	}

	public String getRemover() {
		return remover;
	}

	public void setRemover(String remover) {
		this.remover = remover;
	}

	public String getAdicionar() {
		return adicionar;
	}

	public void setAdicionar(String adicionar) {
		this.adicionar = adicionar;
	}

	public String getConsultar() {
		return consultar;
	}

	public void setConsultar(String consultar) {
		this.consultar = consultar;
	}
	public Collection<Curso> getCursos() {
		return cursos;
	}
	public void setCursos(Collection<Curso> cursos) {
		this.cursos = cursos;
	}
	public Long getIdCurso() {
		return idCurso;
	}
	public void setIdCurso(Long idCurso) {
		this.idCurso = idCurso;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public CursoFacade getCursoFacade() {
		return cursoFacade;
	}
	public void setCursoFacade(CursoFacade cursoFacade) {
		this.cursoFacade = cursoFacade;
	}
	public String getMenu() {
		return menu;
	}
	public void setMenu(String menu) {
		this.menu = menu;
	}
	
	
}
